Formalizing Lightweight Verification of Software Component Composition
نویسندگان
چکیده
Software errors often occur at the interfaces between separately developed components. Incompatibilities are an especially acute problem when upgrading software components, as new versions may be accidentally incompatible with old ones. As an inexpensive mechanism to detect many such problems, previous work proposed a technique that adapts methods from formal verification to use component abstractions that can be automatically generated from implementations. The technique reports, before performing the replacement or integrating the new component into a system, whether the upgrade might be problematic for that particular system. The technique is based on a rich model of components that support internal state, callbacks, and simultaneous upgrades of multiple components, and component abstractions may contain arbitrary logical properties including unbounded-state ones. This paper motivates this (somewhat non-standard) approach to component verification. The paper also refines the formal model of components, provides a formal model of software system safety, gives an algorithm for constructing a consistency condition, proves that the algorithm’s result guarantees system safety in the case of a single-component upgrade, and gives a proof outline of the algorithm’s correctness in the case of an arbitrary upgrade.
منابع مشابه
Towards Reliable Component Software: Light-weight Formalism
The component software technology is a promising trend for rapid software development. However, one of the problems of software engineering is still inherited, which is the high cost of program verification. Moreover, not just the component, but also the composition of components is a subject for verification. In the direction of component software free-trade market, verification concerns becom...
متن کاملVerification mechanism for lightweight componenent-based environment based on IoC container
This paper presents a concept of component verification framework dedicated to a particular lightweight component environment. The starting point of the paper constitutes a discussion about the significance of verification of syntax inconsistencies in software development. Next, the need of verification in serviceoriented and component-based systems is presented, and various approaches of verif...
متن کاملFormal Verification of the Implementability of Timing Requirements
There has been relatively little work on the implementability of timing requirements. We have previously provided definitions of fundamental timing operators that explicitly considered tolerances on property durations and intersample jitter. In this work we identify three environmental assumptions and compare the implementability of a Held For operator in each of them, formalizing this analysis...
متن کاملComponent Change and Version Identification in SOFA
In the area of component software, the work so far has concentrated primarily on the key issues of architecture specification and component updating. However, the problems of maintaining application consistency and versioning of components as they evolve have received less attention, and the available solutions are either ad-hoc or not well suited for component applications. In this paper we ev...
متن کاملFormalizing UML for Rigorous Software Development
Formalizing a modeling technique broaches issues including development of software specification, design, analysis, and synthesis. Software engineering methodologies should be grounded on rigorous principles and not on ad hoc approaches. Our approach is to integrate the recently published industrial standard graphic notation UML (Unified Modeling Language), for object-oriented modeling, and PVS...
متن کامل